package com.wang.users.pojo;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.wang.common.pojo.BasePojo;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.util.List;

/**
 * 组织表
 *
 * @author Administrator
 * @TableName at_rbac_menu
 */
@TableName(value = "at_users_organ")
@Data
@EqualsAndHashCode(callSuper=false)
public class AtUsersOrgan extends BasePojo implements Serializable {
    /**
     * 上一级菜单Id
     */
    @TableField(value = "parentId")
    private String parentId;

    /**
     * 菜单的Url,权限验证的时候使用
     */
    @TableField(value = "url")
    private String url;

    /**
     * 是否为叶子节点:0:非叶子,1:叶子(木有子节点)
     */
    @TableField(value = "isLeafStatus")
    private String isLeafStatus;

    /**
     * 叶子节点状态:(0:禁用,1:启用)
     * 字符串描述
     */
    @TableField(exist = false)
    private String isLeafStatusStr;

    /**
     * 叶子节点状态:(0:禁用,1:启用)
     * 字符串描述
     */
    @TableField(exist = false)
    private AtUsersOrgan parentObj;

    /**
     * 叶子节点状态:(0:禁用,1:启用)
     * 字符串描述
     */
    @TableField(exist = false)
    private List<AtUsersOrgan> parentList;

    /**
     * 叶子节点状态:(0:禁用,1:启用)
     * 字符串描述
     */
    @TableField(exist = false)
    private String treeName;

    /**
     * 枚举
     * 根据数据库中存储的code值变成info值
     * @return  状态描述信息
     */

    public String getIsLeafStatusStr() {
        AtUsersOrganEnum[] enumsArr = AtUsersOrganEnum.values();
        for (AtUsersOrganEnum enumsTemp : enumsArr) {
            String varName = enumsTemp.toString();
            if (varName.startsWith("LEAFSTATUS_") && enumsTemp.getCode().equalsIgnoreCase(this.getIsLeafStatus()) ) {
                this.isLeafStatusStr = enumsTemp.getInfo();
                break;
            }
        }
        return isLeafStatusStr;
    }
}